#ifndef __BULEET_H__
#define __BULEET_H__

class PlayerBullet : public ShooterObject
{
    public:
        PlayerBullet() : ShooterObject(){}

        virtual ~PlayerBullet(){}

        virtual std::string type() { return "PlayerBullet"; };
        
        virtual void load(std::unique_ptr<LoaderParams> pParms,
                Vector2D haeding){
            ShooterObject::load(std::move(pParams));
            m_heading = heading;
        }
        
        virtual void draw(){
            ShooterObject::draw();
        }

        virtual void collision(){
            m_bDead = true;
        }

        virtual void update(){
            m_velocity.setX(m_heading.getX());
            m_velocity.setY(m_heading.getY());
            ShooterObject::update();
        }

        virutal void clean(){
            ShooterObejct::clean(); 
        }
    private:
        Vector2D m_heading;
};

class EnemyBullet : public Playerbullet{
    public:
        EnemyBullet() : PlayerBullet(){}

        virtual ~EnemyBullet(){}

        virtual std::string type(){ return "EnemyBullet"; }
};

#endif
